[INFO] cloning repository https://github.com/willabytes/3d-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/willabytes/3d-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwillabytes%2F3d-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwillabytes%2F3d-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 436fec8271df395c41d4b9560447ddb9d2eb2ece
[INFO] testing willabytes/3d-engine against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwillabytes%2F3d-engine" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/willabytes/3d-engine
[INFO] finished tweaking git repo https://github.com/willabytes/3d-engine
[INFO] tweaked toml for git repo https://github.com/willabytes/3d-engine written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/willabytes/3d-engine on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/willabytes/3d-engine already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e22f2e6996085117bde19a8eb4e0bed94c3e7135034832382eeae73b562bbf1c
[INFO] running `Command { std: "docker" "start" "-a" "e22f2e6996085117bde19a8eb4e0bed94c3e7135034832382eeae73b562bbf1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e22f2e6996085117bde19a8eb4e0bed94c3e7135034832382eeae73b562bbf1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e22f2e6996085117bde19a8eb4e0bed94c3e7135034832382eeae73b562bbf1c", kill_on_drop: false }`
[INFO] [stdout] e22f2e6996085117bde19a8eb4e0bed94c3e7135034832382eeae73b562bbf1c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 36a42f2ca752b337c728dc8650455117da1de6facc045bf0db0595635e4f075e
[INFO] running `Command { std: "docker" "start" "-a" "36a42f2ca752b337c728dc8650455117da1de6facc045bf0db0595635e4f075e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling wayland-sys v0.31.8
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling wayland-client v0.31.12
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling gpu-descriptor-types v0.2.0
[INFO] [stderr]    Compiling gpu-alloc-types v0.3.0
[INFO] [stderr]    Compiling spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling gpu-alloc v0.6.0
[INFO] [stderr]    Compiling gpu-descriptor v0.3.2
[INFO] [stderr]    Compiling ash v0.38.0+1.3.281
[INFO] [stderr]    Compiling profiling v1.0.17
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling ab_glyph v0.2.32
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling humantime v2.3.0
[INFO] [stderr]    Compiling dpi v0.1.2
[INFO] [stderr]    Compiling pollster v0.3.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling khronos-egl v6.0.0
[INFO] [stderr]    Compiling memmap2 v0.9.9
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling wayland-scanner v0.31.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling ordered-float v5.1.0
[INFO] [stderr]    Compiling wayland-backend v0.3.12
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling calloop v0.13.0
[INFO] [stderr]    Compiling wgpu-types v27.0.1
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling tiny-skia v0.11.4
[INFO] [stderr]    Compiling wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling wayland-protocols v0.32.10
[INFO] [stderr]    Compiling calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling wayland-cursor v0.31.12
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling naga v27.0.3
[INFO] [stderr]    Compiling wayland-protocols-wlr v0.3.10
[INFO] [stderr]    Compiling wayland-protocols-plasma v0.3.10
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling sctk-adwaita v0.10.1
[INFO] [stderr]    Compiling wgpu-hal v27.0.4
[INFO] [stderr]    Compiling wgpu-core-deps-windows-linux-android v27.0.0
[INFO] [stderr]    Compiling wgpu-core v27.0.3
[INFO] [stderr]    Compiling wgpu v27.0.1
[INFO] [stderr]    Compiling wgpu-3d-engine v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `camera::*`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use camera::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `object::*`
[INFO] [stdout]   --> src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use object::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/lib.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::mem;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]    --> src/lib.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         use std::f32::consts::PI;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movement_direction`
[INFO] [stdout]    --> src/lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let movement_direction = self.camera.direction();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]    --> src/lib.rs:569:32
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/lib.rs:569:62
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWO_PI` is never used
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct State {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     delta_time: std::time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     frame_times: FrameTimes,
[INFO] [stdout] 39 |     mouse_sensitivity: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stdout]   --> src/lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct FrameTimes {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 46 |     delta_time: std::time::Instant,
[INFO] [stdout] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     update_time: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `new_sample` are never used
[INFO] [stdout]   --> src/lib.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FrameTimes {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 53 |     fn reset(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALF_PI` is never used
[INFO] [stdout]  --> src/camera.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stdout]    --> src/camera.rs:75:16
[INFO] [stdout]     |
[INFO] [stdout]  18 |     impl Camera {
[INFO] [stdout]     |     ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/object.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub struct Vertex {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]   --> src/object.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub struct Triangle {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Object` is never constructed
[INFO] [stdout]   --> src/object.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Object {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate` is never used
[INFO] [stdout]   --> src/object.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     impl Object {
[INFO] [stdout]    |     ----------- method in this implementation
[INFO] [stdout] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]   --> src/object/object/gmlib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub struct Vec2 {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:98:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl Vec2 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub struct Vec3 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:202:16
[INFO] [stdout]     |
[INFO] [stdout] 201 |     impl Vec3 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub fn normalize(self) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:325:16
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub struct Vec4 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:333:16
[INFO] [stdout]     |
[INFO] [stdout] 332 |     impl Vec4 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2x2` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:448:16
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub struct Mat2x2 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:454:16
[INFO] [stdout]     |
[INFO] [stdout] 453 |     impl Mat2x2 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat3x3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:610:16
[INFO] [stdout]     |
[INFO] [stdout] 610 |     pub struct Mat3x3 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 616 |     impl Mat3x3 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:817:15
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat4x4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:824:16
[INFO] [stdout]     |
[INFO] [stdout] 824 |     pub struct Mat4x4 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:832:16
[INFO] [stdout]     |
[INFO] [stdout] 831 |     impl Mat4x4 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stdout]      |
[INFO] [stdout] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stdout]      |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stdout]      |
[INFO] [stdout] 1174 |     pub struct Quaternion {
[INFO] [stdout]      |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     impl Quaternion {
[INFO] [stdout]      |     --------------- associated items in this implementation
[INFO] [stdout] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/lib.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `camera::*`
[INFO] [stdout]   --> src/./lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use camera::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `object::*`
[INFO] [stdout]   --> src/./lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use object::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/./lib.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::mem;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]    --> src/./lib.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         use std::f32::consts::PI;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./lib.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movement_direction`
[INFO] [stdout]    --> src/./lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let movement_direction = self.camera.direction();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./lib.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]    --> src/./lib.rs:569:32
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/./lib.rs:569:62
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWO_PI` is never used
[INFO] [stdout]   --> src/./lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stdout]   --> src/./lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct State {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     delta_time: std::time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     frame_times: FrameTimes,
[INFO] [stdout] 39 |     mouse_sensitivity: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stdout]   --> src/./lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct FrameTimes {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 46 |     delta_time: std::time::Instant,
[INFO] [stdout] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     update_time: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `new_sample` are never used
[INFO] [stdout]   --> src/./lib.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FrameTimes {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 53 |     fn reset(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FpsCounter` is never constructed
[INFO] [stdout]   --> src/./lib.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct FpsCounter {}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALF_PI` is never used
[INFO] [stdout]  --> src/camera.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stdout]    --> src/camera.rs:75:16
[INFO] [stdout]     |
[INFO] [stdout]  18 |     impl Camera {
[INFO] [stdout]     |     ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/object.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub struct Vertex {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]   --> src/object.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub struct Triangle {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Object` is never constructed
[INFO] [stdout]   --> src/object.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Object {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate` is never used
[INFO] [stdout]   --> src/object.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     impl Object {
[INFO] [stdout]    |     ----------- method in this implementation
[INFO] [stdout] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]   --> src/object/object/gmlib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub struct Vec2 {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:98:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl Vec2 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub struct Vec3 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:202:16
[INFO] [stdout]     |
[INFO] [stdout] 201 |     impl Vec3 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub fn normalize(self) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:325:16
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub struct Vec4 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:333:16
[INFO] [stdout]     |
[INFO] [stdout] 332 |     impl Vec4 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2x2` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:448:16
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub struct Mat2x2 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:454:16
[INFO] [stdout]     |
[INFO] [stdout] 453 |     impl Mat2x2 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat3x3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:610:16
[INFO] [stdout]     |
[INFO] [stdout] 610 |     pub struct Mat3x3 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 616 |     impl Mat3x3 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:817:15
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat4x4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:824:16
[INFO] [stdout]     |
[INFO] [stdout] 824 |     pub struct Mat4x4 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:832:16
[INFO] [stdout]     |
[INFO] [stdout] 831 |     impl Mat4x4 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stdout]      |
[INFO] [stdout] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stdout]      |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stdout]      |
[INFO] [stdout] 1174 |     pub struct Quaternion {
[INFO] [stdout]      |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     impl Quaternion {
[INFO] [stdout]      |     --------------- associated items in this implementation
[INFO] [stdout] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/./lib.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "36a42f2ca752b337c728dc8650455117da1de6facc045bf0db0595635e4f075e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "36a42f2ca752b337c728dc8650455117da1de6facc045bf0db0595635e4f075e", kill_on_drop: false }`
[INFO] [stdout] 36a42f2ca752b337c728dc8650455117da1de6facc045bf0db0595635e4f075e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e3aed9ca4b92c73d0a40e4c7373c62fafaa8d68f1aeccded27198a05e62104f0
[INFO] running `Command { std: "docker" "start" "-a" "e3aed9ca4b92c73d0a40e4c7373c62fafaa8d68f1aeccded27198a05e62104f0", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `camera::*`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use camera::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `object::*`
[INFO] [stdout]   --> src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use object::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/lib.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::mem;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]    --> src/lib.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         use std::f32::consts::PI;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movement_direction`
[INFO] [stdout]    --> src/lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let movement_direction = self.camera.direction();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]    --> src/lib.rs:569:32
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/lib.rs:569:62
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWO_PI` is never used
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct State {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     delta_time: std::time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     frame_times: FrameTimes,
[INFO] [stdout] 39 |     mouse_sensitivity: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stdout]   --> src/lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct FrameTimes {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 46 |     delta_time: std::time::Instant,
[INFO] [stdout] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     update_time: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `new_sample` are never used
[INFO] [stdout]   --> src/lib.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FrameTimes {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 53 |     fn reset(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALF_PI` is never used
[INFO] [stdout]  --> src/camera.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stdout]    --> src/camera.rs:75:16
[INFO] [stdout]     |
[INFO] [stdout]  18 |     impl Camera {
[INFO] [stdout]     |     ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/object.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub struct Vertex {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]   --> src/object.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub struct Triangle {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Object` is never constructed
[INFO] [stdout]   --> src/object.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Object {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate` is never used
[INFO] [stdout]   --> src/object.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     impl Object {
[INFO] [stdout]    |     ----------- method in this implementation
[INFO] [stdout] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]   --> src/object/object/gmlib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub struct Vec2 {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:98:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl Vec2 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub struct Vec3 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:202:16
[INFO] [stdout]     |
[INFO] [stdout] 201 |     impl Vec3 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub fn normalize(self) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:325:16
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub struct Vec4 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:333:16
[INFO] [stdout]     |
[INFO] [stdout] 332 |     impl Vec4 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2x2` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:448:16
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub struct Mat2x2 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:454:16
[INFO] [stdout]     |
[INFO] [stdout] 453 |     impl Mat2x2 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat3x3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:610:16
[INFO] [stdout]     |
[INFO] [stdout] 610 |     pub struct Mat3x3 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 616 |     impl Mat3x3 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:817:15
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wgpu-3d-engine v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Mat4x4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:824:16
[INFO] [stdout]     |
[INFO] [stdout] 824 |     pub struct Mat4x4 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:832:16
[INFO] [stdout]     |
[INFO] [stdout] 831 |     impl Mat4x4 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stdout]      |
[INFO] [stdout] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stdout]      |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stdout]      |
[INFO] [stdout] 1174 |     pub struct Quaternion {
[INFO] [stdout]      |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     impl Quaternion {
[INFO] [stdout]      |     --------------- associated items in this implementation
[INFO] [stdout] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/lib.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `camera::*`
[INFO] [stdout]   --> src/./lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use camera::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `object::*`
[INFO] [stdout]   --> src/./lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use object::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/./lib.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::mem;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]    --> src/./lib.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         use std::f32::consts::PI;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `camera::*`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use camera::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `object::*`
[INFO] [stdout]   --> src/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use object::*;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/lib.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         use std::mem;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]    --> src/lib.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         use std::f32::consts::PI;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./lib.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/object/object/gmlib.rs:845:21
[INFO] [stdout]     |
[INFO] [stdout] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movement_direction`
[INFO] [stdout]    --> src/lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let movement_direction = self.camera.direction();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `movement_direction`
[INFO] [stdout]    --> src/./lib.rs:406:13
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let movement_direction = self.camera.direction();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]    --> src/lib.rs:569:32
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/lib.rs:569:62
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/./lib.rs:515:13
[INFO] [stdout]     |
[INFO] [stdout] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWO_PI` is never used
[INFO] [stdout]   --> src/lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct State {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     delta_time: std::time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     frame_times: FrameTimes,
[INFO] [stdout] 39 |     mouse_sensitivity: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stdout]   --> src/lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct FrameTimes {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 46 |     delta_time: std::time::Instant,
[INFO] [stdout] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     update_time: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `new_sample` are never used
[INFO] [stdout]   --> src/lib.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FrameTimes {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 53 |     fn reset(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALF_PI` is never used
[INFO] [stdout]  --> src/camera.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]    --> src/./lib.rs:569:32
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stdout]    --> src/camera.rs:75:16
[INFO] [stdout]     |
[INFO] [stdout]  18 |     impl Camera {
[INFO] [stdout]     |     ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_id`
[INFO] [stdout]    --> src/./lib.rs:569:62
[INFO] [stdout]     |
[INFO] [stdout] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stdout]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/object.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub struct Vertex {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]   --> src/object.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub struct Triangle {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Object` is never constructed
[INFO] [stdout]   --> src/object.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Object {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate` is never used
[INFO] [stdout]   --> src/object.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     impl Object {
[INFO] [stdout]    |     ----------- method in this implementation
[INFO] [stdout] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]   --> src/object/object/gmlib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub struct Vec2 {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:98:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl Vec2 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub struct Vec3 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:202:16
[INFO] [stdout]     |
[INFO] [stdout] 201 |     impl Vec3 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub fn normalize(self) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:325:16
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub struct Vec4 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:333:16
[INFO] [stdout]     |
[INFO] [stdout] 332 |     impl Vec4 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2x2` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:448:16
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub struct Mat2x2 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:454:16
[INFO] [stdout]     |
[INFO] [stdout] 453 |     impl Mat2x2 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat3x3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:610:16
[INFO] [stdout]     |
[INFO] [stdout] 610 |     pub struct Mat3x3 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 616 |     impl Mat3x3 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:817:15
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat4x4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:824:16
[INFO] [stdout]     |
[INFO] [stdout] 824 |     pub struct Mat4x4 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:832:16
[INFO] [stdout]     |
[INFO] [stdout] 831 |     impl Mat4x4 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stdout]      |
[INFO] [stdout] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stdout]      |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stdout]      |
[INFO] [stdout] 1174 |     pub struct Quaternion {
[INFO] [stdout]      |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     impl Quaternion {
[INFO] [stdout]      |     --------------- associated items in this implementation
[INFO] [stdout] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWO_PI` is never used
[INFO] [stdout]   --> src/./lib.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stdout]   --> src/./lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct State {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     delta_time: std::time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 38 |     frame_times: FrameTimes,
[INFO] [stdout] 39 |     mouse_sensitivity: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stdout]   --> src/./lib.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct FrameTimes {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 46 |     delta_time: std::time::Instant,
[INFO] [stdout] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     update_time: std::time::Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset` and `new_sample` are never used
[INFO] [stdout]   --> src/./lib.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl FrameTimes {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 53 |     fn reset(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FpsCounter` is never constructed
[INFO] [stdout]   --> src/./lib.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct FpsCounter {}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALF_PI` is never used
[INFO] [stdout]  --> src/camera.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stdout]    --> src/camera.rs:75:16
[INFO] [stdout]     |
[INFO] [stdout]  18 |     impl Camera {
[INFO] [stdout]     |     ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/object.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub struct Vertex {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangle` is never constructed
[INFO] [stdout]   --> src/object.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub struct Triangle {
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Object` is never constructed
[INFO] [stdout]   --> src/object.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Object {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rotate` is never used
[INFO] [stdout]   --> src/object.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     impl Object {
[INFO] [stdout]    |     ----------- method in this implementation
[INFO] [stdout] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]   --> src/object/object/gmlib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub struct Vec2 {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:98:16
[INFO] [stdout]     |
[INFO] [stdout]  97 |     impl Vec2 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:195:16
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub struct Vec3 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:202:16
[INFO] [stdout]     |
[INFO] [stdout] 201 |     impl Vec3 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |         pub fn normalize(self) -> Self {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:325:16
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub struct Vec4 {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:333:16
[INFO] [stdout]     |
[INFO] [stdout] 332 |     impl Vec4 {
[INFO] [stdout]     |     --------- associated items in this implementation
[INFO] [stdout] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |         pub fn norm(self) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2x2` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:448:16
[INFO] [stdout]     |
[INFO] [stdout] 448 |     pub struct Mat2x2 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:454:16
[INFO] [stdout]     |
[INFO] [stdout] 453 |     impl Mat2x2 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:603:15
[INFO] [stdout]     |
[INFO] [stdout] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat3x3` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:610:16
[INFO] [stdout]     |
[INFO] [stdout] 610 |     pub struct Mat3x3 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:617:16
[INFO] [stdout]     |
[INFO] [stdout] 616 |     impl Mat3x3 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:817:15
[INFO] [stdout]     |
[INFO] [stdout] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat4x4` is never constructed
[INFO] [stdout]    --> src/object/object/gmlib.rs:824:16
[INFO] [stdout]     |
[INFO] [stdout] 824 |     pub struct Mat4x4 {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stdout]    --> src/object/object/gmlib.rs:832:16
[INFO] [stdout]     |
[INFO] [stdout] 831 |     impl Mat4x4 {
[INFO] [stdout]     |     ----------- associated items in this implementation
[INFO] [stdout] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stdout]      |
[INFO] [stdout] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stdout]      |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quaternion` is never constructed
[INFO] [stdout]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stdout]      |
[INFO] [stdout] 1174 |     pub struct Quaternion {
[INFO] [stdout]      |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stdout]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stdout]      |
[INFO] [stdout] 1195 |     impl Quaternion {
[INFO] [stdout]      |     --------------- associated items in this implementation
[INFO] [stdout] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stdout]      |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stdout]      |                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/lib.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/./lib.rs:371:9
[INFO] [stdout]     |
[INFO] [stdout] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.65s
[INFO] running `Command { std: "docker" "inspect" "e3aed9ca4b92c73d0a40e4c7373c62fafaa8d68f1aeccded27198a05e62104f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3aed9ca4b92c73d0a40e4c7373c62fafaa8d68f1aeccded27198a05e62104f0", kill_on_drop: false }`
[INFO] [stdout] e3aed9ca4b92c73d0a40e4c7373c62fafaa8d68f1aeccded27198a05e62104f0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e3fa3c5b8cefb6328a16feb5a84b56e1c679df4bfe90eac0fb56f6f18c374388
[INFO] running `Command { std: "docker" "start" "-a" "e3fa3c5b8cefb6328a16feb5a84b56e1c679df4bfe90eac0fb56f6f18c374388", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `camera::*`
[INFO] [stderr]   --> src/lib.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use camera::*;
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `object::*`
[INFO] [stderr]   --> src/lib.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use object::*;
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]   --> src/lib.rs:90:13
[INFO] [stderr]    |
[INFO] [stderr] 90 |         use std::mem;
[INFO] [stderr]    |             ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]    --> src/lib.rs:162:13
[INFO] [stderr]     |
[INFO] [stderr] 162 |         use std::f32::consts::PI;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/object/object/gmlib.rs:465:21
[INFO] [stderr]     |
[INFO] [stderr] 465 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/object/object/gmlib.rs:629:21
[INFO] [stderr]     |
[INFO] [stderr] 629 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/object/object/gmlib.rs:845:21
[INFO] [stderr]     |
[INFO] [stderr] 845 |                 for i in 0..(exponent - 1) { self = self * self; }
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `movement_direction`
[INFO] [stderr]    --> src/lib.rs:406:13
[INFO] [stderr]     |
[INFO] [stderr] 406 |         let movement_direction = self.camera.direction();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:515:13
[INFO] [stderr]     |
[INFO] [stderr] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event_loop`
[INFO] [stderr]    --> src/lib.rs:569:32
[INFO] [stderr]     |
[INFO] [stderr] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stderr]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device_id`
[INFO] [stderr]    --> src/lib.rs:569:62
[INFO] [stderr]     |
[INFO] [stderr] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stderr]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TWO_PI` is never used
[INFO] [stderr]   --> src/lib.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stderr]    |       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stderr]   --> src/lib.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct State {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 37 |     delta_time: std::time::Instant,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 38 |     frame_times: FrameTimes,
[INFO] [stderr] 39 |     mouse_sensitivity: f32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stderr]   --> src/lib.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | struct FrameTimes {
[INFO] [stderr]    |        ---------- fields in this struct
[INFO] [stderr] 46 |     delta_time: std::time::Instant,
[INFO] [stderr] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 48 |     update_time: std::time::Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `reset` and `new_sample` are never used
[INFO] [stderr]   --> src/lib.rs:53:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | impl FrameTimes {
[INFO] [stderr]    | --------------- methods in this implementation
[INFO] [stderr] 53 |     fn reset(&mut self) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HALF_PI` is never used
[INFO] [stderr]  --> src/camera.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 |     const HALF_PI: f32 = 0.5 * PI;
[INFO] [stderr]   |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `move_to`, `move_relative`, `move_forward_h`, and `move_backward_h` are never used
[INFO] [stderr]    --> src/camera.rs:75:16
[INFO] [stderr]     |
[INFO] [stderr]  18 |     impl Camera {
[INFO] [stderr]     |     ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  75 |         pub fn move_to(&mut self, destination: [f32; 3]) {
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  79 |         pub fn move_relative(&mut self, distance: [f32; 3]) {
[INFO] [stderr]     |                ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |         pub fn move_forward_h(&mut self, increment: f32) {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |         pub fn move_backward_h(&mut self, increment: f32) {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Vertex` is never constructed
[INFO] [stderr]   --> src/object.rs:15:16
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub struct Vertex {
[INFO] [stderr]    |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Triangle` is never constructed
[INFO] [stderr]   --> src/object.rs:20:16
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub struct Triangle {
[INFO] [stderr]    |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Object` is never constructed
[INFO] [stderr]   --> src/object.rs:25:16
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub struct Object {
[INFO] [stderr]    |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `rotate` is never used
[INFO] [stderr]   --> src/object.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 31 |     impl Object {
[INFO] [stderr]    |     ----------- method in this implementation
[INFO] [stderr] 32 |         pub fn rotate(&mut self, axis: Vec3, angle: f32, offset: Vec3) {
[INFO] [stderr]    |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Vec2` is never constructed
[INFO] [stderr]   --> src/object/object/gmlib.rs:92:16
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub struct Vec2 {
[INFO] [stderr]    |                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:98:16
[INFO] [stderr]     |
[INFO] [stderr]  97 |     impl Vec2 {
[INFO] [stderr]     |     --------- associated items in this implementation
[INFO] [stderr]  98 |         pub fn from(values: [f32; 2]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 105 |         pub fn norm(self) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |         pub fn to_array(self) -> [f32; 2] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Vec3` is never constructed
[INFO] [stderr]    --> src/object/object/gmlib.rs:195:16
[INFO] [stderr]     |
[INFO] [stderr] 195 |     pub struct Vec3 {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `magnitude`, `normalize`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:202:16
[INFO] [stderr]     |
[INFO] [stderr] 201 |     impl Vec3 {
[INFO] [stderr]     |     --------- associated items in this implementation
[INFO] [stderr] 202 |         pub fn from(values: [f32; 3]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |         pub fn magnitude(self) -> f32 {
[INFO] [stderr]     |                ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |         pub fn normalize(self) -> Self {
[INFO] [stderr]     |                ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 222 |         pub fn to_array(self) -> [f32; 3] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Vec4` is never constructed
[INFO] [stderr]    --> src/object/object/gmlib.rs:325:16
[INFO] [stderr]     |
[INFO] [stderr] 325 |     pub struct Vec4 {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `norm`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:333:16
[INFO] [stderr]     |
[INFO] [stderr] 332 |     impl Vec4 {
[INFO] [stderr]     |     --------- associated items in this implementation
[INFO] [stderr] 333 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 342 |         pub fn norm(self) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 351 |         pub fn to_array(self) -> [f32; 4] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Mat2x2` is never constructed
[INFO] [stderr]    --> src/object/object/gmlib.rs:448:16
[INFO] [stderr]     |
[INFO] [stderr] 448 |     pub struct Mat2x2 {
[INFO] [stderr]     |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:454:16
[INFO] [stderr]     |
[INFO] [stderr] 453 |     impl Mat2x2 {
[INFO] [stderr]     |     ----------- associated items in this implementation
[INFO] [stderr] 454 |         pub fn from(values: [f32; 4]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 461 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 471 |         pub fn determinant(&self) -> f32 {
[INFO] [stderr]     |                ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 476 |         pub fn inverse(&self) -> Self {
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 487 |         pub fn to_array(self) -> [[f32; 2]; 2] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNIT_MAT2X2` is never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:603:15
[INFO] [stderr]     |
[INFO] [stderr] 603 |     pub const UNIT_MAT2X2: Mat2x2 = Mat2x2 {
[INFO] [stderr]     |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Mat3x3` is never constructed
[INFO] [stderr]    --> src/object/object/gmlib.rs:610:16
[INFO] [stderr]     |
[INFO] [stderr] 610 |     pub struct Mat3x3 {
[INFO] [stderr]     |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:617:16
[INFO] [stderr]     |
[INFO] [stderr] 616 |     impl Mat3x3 {
[INFO] [stderr]     |     ----------- associated items in this implementation
[INFO] [stderr] 617 |         pub fn from(values: [f32; 9]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 625 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 635 |         pub fn determinant(&self) -> f32 {
[INFO] [stderr]     |                ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 644 |         pub fn inverse(&self) -> Self {
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 664 |         pub fn to_array(self) -> [[f32; 3]; 3] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNIT_MAT3X3` is never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:817:15
[INFO] [stderr]     |
[INFO] [stderr] 817 |     pub const UNIT_MAT3X3: Mat3x3 = Mat3x3 {
[INFO] [stderr]     |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Mat4x4` is never constructed
[INFO] [stderr]    --> src/object/object/gmlib.rs:824:16
[INFO] [stderr]     |
[INFO] [stderr] 824 |     pub struct Mat4x4 {
[INFO] [stderr]     |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from`, `pow`, `determinant`, `inverse`, and `to_array` are never used
[INFO] [stderr]    --> src/object/object/gmlib.rs:832:16
[INFO] [stderr]     |
[INFO] [stderr] 831 |     impl Mat4x4 {
[INFO] [stderr]     |     ----------- associated items in this implementation
[INFO] [stderr] 832 |         pub fn from(values: [f32; 16]) -> Self {
[INFO] [stderr]     |                ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 841 |         pub fn pow(mut self, exponent: u32) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 851 |         pub fn determinant(&self) -> f32 {
[INFO] [stderr]     |                ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 875 |         pub fn inverse(&self) -> Self {
[INFO] [stderr]     |                ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 962 |         pub fn to_array(self) -> [[f32; 4]; 4] {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNIT_MAT4X4` is never used
[INFO] [stderr]     --> src/object/object/gmlib.rs:1166:15
[INFO] [stderr]      |
[INFO] [stderr] 1166 |     pub const UNIT_MAT4X4: Mat4x4 = Mat4x4 {
[INFO] [stderr]      |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Quaternion` is never constructed
[INFO] [stderr]     --> src/object/object/gmlib.rs:1174:16
[INFO] [stderr]      |
[INFO] [stderr] 1174 |     pub struct Quaternion {
[INFO] [stderr]      |                ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `conjugate`, `rotate`, `rotate_offset`, and `right_hand_mul` are never used
[INFO] [stderr]     --> src/object/object/gmlib.rs:1196:16
[INFO] [stderr]      |
[INFO] [stderr] 1195 |     impl Quaternion {
[INFO] [stderr]      |     --------------- associated items in this implementation
[INFO] [stderr] 1196 |         pub fn conjugate(self) -> Self {
[INFO] [stderr]      |                ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1205 |         pub fn rotate(point: Vec3, axis: Vec3, angle: f32) -> Vec3 {
[INFO] [stderr]      |                ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1231 |         pub fn rotate_offset(point: Vec3, axis: Vec3, angle: f32, offset: Vec3) -> Vec3 {
[INFO] [stderr]      |                ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1236 |         pub fn right_hand_mul(lhs: Quaternion, rhs: Quaternion) -> Self {
[INFO] [stderr]      |                ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/lib.rs:371:9
[INFO] [stderr]     |
[INFO] [stderr] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `wgpu-3d-engine` (lib) generated 40 warnings (run `cargo fix --lib -p wgpu-3d-engine` to apply 12 suggestions)
[INFO] [stderr] warning: `wgpu-3d-engine` (lib test) generated 40 warnings (40 duplicates)
[INFO] [stderr] warning: unused import: `camera::*`
[INFO] [stderr]   --> src/./lib.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use camera::*;
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `object::*`
[INFO] [stderr]   --> src/./lib.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use object::*;
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem`
[INFO] [stderr]   --> src/./lib.rs:90:13
[INFO] [stderr]    |
[INFO] [stderr] 90 |         use std::mem;
[INFO] [stderr]    |             ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]    --> src/./lib.rs:162:13
[INFO] [stderr]     |
[INFO] [stderr] 162 |         use std::f32::consts::PI;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/./lib.rs:215:13
[INFO] [stderr]     |
[INFO] [stderr] 215 |         let mut camera_uniform = camera::camera::CameraUniform::new(camera);
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `movement_direction`
[INFO] [stderr]    --> src/./lib.rs:406:13
[INFO] [stderr]     |
[INFO] [stderr] 406 |         let movement_direction = self.camera.direction();
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_movement_direction`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/./lib.rs:515:13
[INFO] [stderr]     |
[INFO] [stderr] 515 |         let mut window_attributes = Window::default_attributes();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `event_loop`
[INFO] [stderr]    --> src/./lib.rs:569:32
[INFO] [stderr]     |
[INFO] [stderr] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stderr]     |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `device_id`
[INFO] [stderr]    --> src/./lib.rs:569:62
[INFO] [stderr]     |
[INFO] [stderr] 569 |     fn device_event(&mut self, event_loop: &ActiveEventLoop, device_id: DeviceId, event: winit::event::DeviceEvent) {
[INFO] [stderr]     |                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_id`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TWO_PI` is never used
[INFO] [stderr]   --> src/./lib.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const TWO_PI: f32 = 2.0 * PI;
[INFO] [stderr]    |       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `camera_matrix`, `delta_time`, and `mouse_sensitivity` are never read
[INFO] [stderr]   --> src/./lib.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct State {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 36 |     camera_matrix: [[f32; 3]; 3],
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 37 |     delta_time: std::time::Instant,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 38 |     frame_times: FrameTimes,
[INFO] [stderr] 39 |     mouse_sensitivity: f32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `delta_time_sum` and `update_time` are never read
[INFO] [stderr]   --> src/./lib.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | struct FrameTimes {
[INFO] [stderr]    |        ---------- fields in this struct
[INFO] [stderr] 46 |     delta_time: std::time::Instant,
[INFO] [stderr] 47 |     delta_time_sum: std::time::Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 48 |     update_time: std::time::Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `reset` and `new_sample` are never used
[INFO] [stderr]   --> src/./lib.rs:53:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | impl FrameTimes {
[INFO] [stderr]    | --------------- methods in this implementation
[INFO] [stderr] 53 |     fn reset(&mut self) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     fn new_sample(mut self) -> Self {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FpsCounter` is never constructed
[INFO] [stderr]   --> src/./lib.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub struct FpsCounter {}
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/./lib.rs:371:9
[INFO] [stderr]     |
[INFO] [stderr] 371 |         window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 371 |         let _ = window.set_cursor_grab(winit::window::CursorGrabMode::Locked);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `wgpu-3d-engine` (bin "wgpu-3d-engine" test) generated 41 warnings (26 duplicates) (run `cargo fix --bin "wgpu-3d-engine" -p wgpu-3d-engine --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wgpu_3d_engine-0a77ff4c3d05279e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/wgpu_3d_engine-bbe1a59ec8b8ef3f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests wgpu_3d_engine
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e3fa3c5b8cefb6328a16feb5a84b56e1c679df4bfe90eac0fb56f6f18c374388", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3fa3c5b8cefb6328a16feb5a84b56e1c679df4bfe90eac0fb56f6f18c374388", kill_on_drop: false }`
[INFO] [stdout] e3fa3c5b8cefb6328a16feb5a84b56e1c679df4bfe90eac0fb56f6f18c374388
